package MDoc;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Phrase;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author mx109
 */
public class MgZw extends MgDoc{
    public String Zwracajacy="Brak Dostawcy";
    public String DataZwrotu="data zwrotu";
    
    @Override
    void addRest(Document doc) {
        List.clear();
        List.add(new StringPair("Zwracający",  Zwracajacy));
        List.add(new StringPair("Data zwrotu", DataZwrotu));
        try {
            doc.add(MgTableFactory.getTable1(List));
            doc.add(new Phrase("\n\n"));
            doc.add(MgTableFactory.getListTable(this, MgList));
            doc.add(new Phrase("\n\n"));
            doc.add(MgTableFactory.getTable2("Przyjął", "Oddał", "data", Data));
        } catch (DocumentException ex) {
            Logger.getLogger(MgPz.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }
    
    public MgZw(){
        Nazwa="Zwrot wewnętrzny";
        Skrot="ZW";
        MgList.IloscName="Ilość wydana";
        MgList.showIlosc2=true;
        MgList.Ilosc2Name="Ilość zwrócona";
        MgList.showRoznicaIlosci=true;
        MgList.RoznicaIlosciName="Pozostało do zwrotu";
    }

    @Override
    public boolean checkThisDoc() {
        if( isNullOrEmpty(Zwracajacy) || !new StringPair("Zwracający",  Zwracajacy ).equals(List.get(0))
         || isNullOrEmpty(DataZwrotu) || !new StringPair("Data zwrotu", DataZwrotu ).equals(List.get(1))
        ){
            return false;
        }
        if( !"Zwrot wewnętrzny".equals(Nazwa)
         || !"ZW".equals(Skrot)
         || isNullOrEmpty(DaneFirmy)
         || isNullOrEmpty(NrDokumentu)
         || isNullOrEmpty(NrEgzemplarza)
         || Data==null
        ){
            return false;
        }
        if( MgList.koszty
         || !MgList.showIlosc2
         || !MgList.showRoznicaIlosci
        ){
            return false;
        }
        if( !"Ilość zwrócona".equals(MgList.Ilosc2Name)
         || !"Ilość wydana".equals(MgList.IloscName )
        ){
            return false;
        }
        return MgList.checkMgList();
    }
    
}
